Example embodiments relates to methods of reading data from storage devices, error correction devices and storage systems including the error correction device.
Semiconductor memory devices are memory devices embodied using semiconductors such as silicon Si, germanium Ge, gallium arsenide CaAs, indium phosphide InP. Semiconductor memory devices can be roughly divided into two categories including volatile memory devices and nonvolatile memory devices.
Volatile memory devices lose stored data when disconnected from power. Examples of volatile memory devices include static random access memory (SRAM), dynamic random access memory (DRAM) and synchronous DRAM (SDRAM). Nonvolatile memory devices maintain stored data even when disconnected from power. Examples of nonvolatile memory devices include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), flash memory, phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM) and ferroelectric RAM (FRAM).
When data programmed in a memory device is read, errors may occur. If errors occur when reading data, errors may be included in the read data. To correct errors of the read data, error correction codes such as Bose-Chaudhuri-Hocquenghem (BCH) code, Reed-Solomon (RS) code, Low Density Parity Check (LDPC) code, Tutbo code are being studied.